home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / guienv374.lha / GUIEnvironment / M2Amiga / Examples / GuideExample.mod < prev    next >
Text File  |  1994-11-01  |  4KB  |  119 lines

  1. (****************************************************************************
  2.  
  3. $RCSfile: GuideExample.mod $
  4.  
  5. $Revision: 1.5 $
  6.     $Date: 1994/11/01 15:29:38 $
  7.  
  8.     GUIEnvironment example: Menu help function
  9.  
  10.     M2Amiga Modula-2 Compiler V4.2
  11.  
  12.   Copyright © 1994, Carsten Ziegeler
  13.                     Augustin-Wibbelt-Str.7, 33106 Paderborn, Germany
  14.  
  15. ****************************************************************************)
  16. MODULE GuideExample;
  17.  
  18. (* This example open's a window with a menu. If the user presses the
  19.    help key over a menu item, the AmigaGuide is called with the
  20.    belonging help text ! *)
  21.  
  22. (* GuideExample uses the following catalog strings 101.. : menus
  23.                                                     50.. : misc (NotifyExample)
  24.                                                    200   : END       *)
  25.  
  26.   FROM SYSTEM     IMPORT ADDRESS, ADR, CAST, TAG;
  27.   FROM GadToolsD  IMPORT nmItem, nmTitle;
  28.   FROM IntuitionD IMPORT WindowPtr, WindowFlagSet, WindowFlags, WaTags,
  29.                          IDCMPFlagSet, IDCMPFlags;
  30. IMPORT D : GUIEnvD,
  31.        L : GUIEnvL;
  32.  
  33. CONST ver = ADR("$VER: GuideExample 37.4 (31.10.94)");
  34.  
  35. VAR W : WindowPtr;
  36.     G : D.GUIInfoPtr;
  37.  
  38.     buffer : ARRAY[0..12] OF LONGCARD; (* Will contain all the tags *)
  39.  
  40.  
  41.   (* The menu functions: *)
  42.  
  43.   PROCEDURE MenuAbout() : BOOLEAN;
  44.   BEGIN
  45.     IGNORE L.GUIRequestA(G, L.GetCatStr(G, 51,
  46.                          ADR("GUIEnvironment example for version 37.4\n© 1994 C. Ziegeler")),
  47.                          D.gerRTOKKind, NIL);
  48.     RETURN TRUE;
  49.   END MenuAbout;
  50.  
  51.   PROCEDURE MenuQuit() : BOOLEAN;
  52.   BEGIN
  53.     RETURN L.GUIRequestA(G, L.GetCatStr(G, 52, ADR("Really quit example ?")),
  54.                          D.gerRTDoItKind, TAG(buffer,
  55.                          D.gerGadgets, L.GetCatStr(G, 53, ADR("YES|NO")), NIL)) # D.gerYes;
  56.   END MenuQuit;
  57.  
  58.   PROCEDURE MenuGUIEnv() : BOOLEAN;
  59.   BEGIN
  60.     IGNORE L.GUIRequestA(G, ADR("GUIEnvironment !"), D.gerRTOKKind, NIL);
  61.     RETURN TRUE;
  62.   END MenuGUIEnv;
  63.  
  64.   PROCEDURE MenuAmiga() : BOOLEAN;
  65.   BEGIN
  66.     IGNORE L.GUIRequestA(G, ADR("Amiga !"), D.gerRTOKKind, NIL);
  67.     RETURN TRUE;
  68.   END MenuAmiga;
  69.  
  70. BEGIN
  71.  
  72.   W := L.OpenGUIWindowA(100, 70, 300, 100, ADR("GUIEnvironment : GuideExample"),
  73.                         IDCMPFlagSet{closeWindow, menuPick, menuHelp},
  74.                         WindowFlagSet{windowClose, activate}, NIL,
  75.                         TAG(buffer, waMenuHelp, TRUE, NIL));
  76.   IF W # NIL THEN
  77.     (* create GUIInfo *)
  78.  
  79.     G := L.CreateGUIInfoA(W, TAG(buffer,
  80.                           D.guiCatalogFile, ADR("GUIEnvExamples.catalog"),
  81.                           D.guiMenuCatalogOffset, 101,
  82.                           D.guiMenuGuide, ADR("GUIEnvExamples.guide"), NIL));
  83.     IF G # NIL THEN
  84.  
  85.       L.CreateGUIMenuEntryA(G, nmTitle, ADR("Project"), NIL);
  86.       L.CreateGUIMenuEntryA(G, nmItem, ADR("About"),
  87.                             TAG(buffer, D.gemAHook, ADR(MenuAbout),
  88.                                         D.gemShortCut, ADR("A\o"), NIL));
  89.       L.CreateGUIMenuEntryA(G, nmItem, ADR("Quit"),
  90.                             TAG(buffer, D.gemAHook, ADR(MenuQuit),
  91.                                         D.gemShortCut, ADR("Q\o"), NIL));
  92.       L.CreateGUIMenuEntryA(G, nmTitle, ADR("Help"), NIL);
  93.       L.CreateGUIMenuEntryA(G, nmItem, ADR("GUIEnv"),
  94.                             TAG(buffer, D.gemAHook, ADR(MenuGUIEnv),
  95.                                         D.gemShortCut, ADR("G\o"), NIL));
  96.       L.CreateGUIMenuEntryA(G, nmItem, ADR("Amiga"),
  97.                             TAG(buffer, D.gemAHook, ADR(MenuAmiga),
  98.                                         D.gemShortCut, ADR("A\o"), NIL));
  99.  
  100.       IF L.DrawGUIA(G, NIL) = D.geDone THEN
  101.         LOOP (* Input-Loop *)
  102.           L.WaitGUIMsg(G);
  103.           IF    closeWindow IN G^.msgClass THEN
  104.             EXIT;
  105.           ELSIF menuPick    IN G^.msgClass THEN
  106.             EXIT;
  107.           END;
  108.         END;
  109.       END;
  110.     END;
  111.   END;
  112.  
  113. CLOSE
  114.   IF W # NIL THEN
  115.     L.CloseGUIWindow(W);
  116.     W := NIL;
  117.   END;
  118. END GuideExample.
  119.